/*==============================================================================
This header includes Video class for handling OpenGL library's initialization 
and destruction, and for drawing some elemental geometric shapes.
==============================================================================*/

#ifndef VIDEO_H
#define VIDEO_H

#include "common.h"

/*==============================================================================
		Video class controls OpenGL and can draw some geometrical shapes.
==============================================================================*/

class Video
{
public:
	Video();
	~Video();

	// Takes three points and color
	void DrawTriangle(const Vector2& a, const Vector2& b, const Vector2& c, const Color& col);
	// Takes top-left and bottom-right corners of rectangle and color
	void DrawRectangle(const Vector2& tl, const Vector2& br, const Color& col);
	// Draws coloured background
	void DrawBackground(const Color& col);

	// Draw coloured line
	void DrawLine(const Vector2& start, const Vector2& end, const Color& col);
	//void DrawLine(const Vector2& start, const Vector2& end, const ColorHSV& col);

	// Swaps two buffers - shows what was asked to draw
	void Render();

	// True, if ESC key pressed or Close button was pressed
	bool TellsQuit();
};

#endif // VIDEO_H
